package com.github.cakin.shiro.chapter4.authenticator;

import org.apache.shiro.authc.pam.ModularRealmAuthenticator;
import org.apache.shiro.realm.Realm;

import java.util.Arrays;
import java.util.Map;
import java.util.Set;

/**
 * @className: MyAuthenticator
 * @description: 自定义认证器，继承自ModularRealmAuthenticator
 * @date: 2020/5/18
 * @author: cakin
 */
public class MyAuthenticator extends ModularRealmAuthenticator {
    /**
     * 功能描述：测试 byte 数组 setter 注入 方式
     *
     * @author cakin
     * @date 2020/5/18
     * @param bytes 注入的byte数组
     */
    public void setBytes(byte[] bytes) {
        System.out.println(new String(bytes));
    }

    /**
     * 功能描述：测试 Array setter 注入 方式
     *
     * @author cakin
     * @date 2020/5/18
     * @param ints 注入的数组
     */
    public void setArray(int[] ints) {
        System.out.println(Arrays.toString(ints));
    }

    /**
     * 功能描述：测试 Set setter 注入 方式
     *
     * @author cakin
     * @date 2020/5/18
     * @param realms 注入的realms 集合
     */
    public void setSet(Set<Realm> realms) {
        System.out.println(realms);
    }

    /**
     * 功能描述：测试 Map setter 注入 方式
     *
     * @author cakin
     * @date 2020/5/18
     * @param maps 注入Map 对象
     */
    public void setMap(Map<Object, Object> maps) {
        System.out.println(maps);
        System.out.println(maps.get("1"));
    }
}
